<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 普通函数
        // function demo() {
        //     console.log('demo');
        // }
        // // 函数表达式
        // var demo2 = function(){console.log('demo2');}

        // // 创建立即执行IIFE
        // var demo3 = function(){console.log('demo3');}()
        
        // 函数定义式矮化
        // 在函数定义式中直接加()会有语法错误
        // +function demo() {
        //     console.log('demo');
        // }();

        // -function demo() {
        //     console.log('demo');
        // }();

        // !function demo() {
        //     console.log('demo');
        // }();

        // (function demo() {
        //     console.log('demo');
        // })();

        
        // IIFE能管住函数的作用域。
        // var demo = function() {
        //     var a = 10;
        //     console.log("demo");
        // }();
        // console.log(a)

        // IIFE实际参数书写在立即调用小括号中
        // var demo = function(a, b) {
        //     console.log("demo", a, b);
        // }(100, 200);

        // IIFE本身相当于表达式
        var demo = function() {return 10}() + 200
        console.log(demo)
    </script>
</body>
</html>